﻿#pragma once

#include "ImageTask.h"
#include <stdafx.h>

enum class TaskType {
	Erosion, Dilation, Opening, Closing, Threshold, Grayscale,	// 基本操作
	GaussianBlur, MedianBlur, BilateralFilter,					// 滤波操作
	Canny, Sobel,												// 边缘检测
	Rotate, Scale, Translate,									// 几何变换
	ColorConversion, HistogramEqualization						// 其他操作
};

class ImageTaskFactory {
public:
	static std::unique_ptr<ImageTask> createTask(TaskType type);
	// 映射 TaskType 枚举到显示名称
	static const std::map<TaskType, QString> taskTypeNames;
	static const  std::map<std::string, std::vector<TaskType>> taskGroups;
};